CosyOS-II API 用户参考手册  1.0.3
宏定义

以线程为单位初始化内存池,各线程独享自己的内存池。 更多...

线程内存 的协作图:

宏定义

#define uCreateMempool   sCSV_CreateMempool
 创建线程内存池 更多...
 
#define uInitMempool(size)   sUSV_InitMempool(size)
 初始化线程内存池 更多...
 
#define uTalloc(size)    sUSV_Talloc(size)
 线程内存分配 更多...
 
#define uFreeMempool   sUSV_FreeMempool
 释放线程内存池 更多...
 

详细描述

以线程为单位初始化内存池,各线程独享自己的内存池。

注解
线程内存的分配效率远高于进程内存,因为每一次调用uTalloc都是在自己的线程内存池中直接按序分配内存。
在某线程中,如果需要多次动态内存分配,可考虑采用线程内存以提高性能。
线程内存的应用法则:当所有uTalloc的内存都可以释放时,再一次性释放所有内存(线程内存池)。

宏定义说明

#define uCreateMempool   sCSV_CreateMempool

创建线程内存池

实为定义变量(线程内存控制块),C89模式时可考虑在线程的开始处创建。

返回

在文件 ur_api.h1513 行定义.

#define uFreeMempool   sUSV_FreeMempool

释放线程内存池

在文件 ur_api.h1537 行定义.

#define uInitMempool (   size)    sUSV_InitMempool(size)

初始化线程内存池

实质上是通过调用malloc,从进程内存池或堆中分配一块内存来做为线程内存池。

参数
[in]size线程内存池的大小(字节数)
返回
结果(bool)
返回值
false失败
true成功

在文件 ur_api.h1523 行定义.

#define uTalloc (   size)    sUSV_Talloc(size)

线程内存分配

在线程内存池中分配一块内存。

参数
[in]size内存块的大小(字节数)
返回
分配的指针(void MALLOC_MEM *)
返回值
NULL内存分配失败

在文件 ur_api.h1532 行定义.